home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The X-Philes (2nd Revision)
/
The X-Philes Number 1 (1995).iso
/
xphiles
/
coding
/
dsp
/
aib2xmpl.exe
/
AIC_ASM.ASM
< prev
next >
Wrap
Assembly Source File
|
1991-07-31
|
10KB
|
159 lines
;**************************************************************
;
; aic_asm.asm
;
; Jeffrey Schwartz
;
; 07-31-91
;
; (C) Texas Instruments Inc., 1992
;
; Refer to the file 'license.txt' included with this
; this package for usage and license information.
;
;**************************************************************
******************************************************************************
* *
* TMS320C25 AIC LOOPBACK TEST *
* *
* AUTHOR: Jeffrey Schwartz *
* DSP Applications *
* Texas Instruments *
* *
* THIS PROGRAM READS A VALUE FROM THE AIC AND WRITES IT BACK OUT TO THE AIC. *
* *
* TO RUN THIS PROGRAM ON THE XDS/22, A TI-TAGGED FILE MUST BE CREATED FROM *
* THIS FILE. AFTER INITIALIZING YOUR COMMUNICATION PROGRAM FOR USE WITH THE *
* XDS/22, BE SURE TO USE THE ITR COMMAND TO ALLOW THE ONBOARD PROGRAM RAM *
* AND DATA RAM TO RESPOND TO MEMORY-ACCESS CYCLES BEFORE DOWNLOADING. TO *
* RUN THIS PROGRAM ON THE SWDS, A .OUT FILE MUST BE CREATED. IN *
* BOTH CASES, THE FILES MUST BE LINKED WITH A .CMD FILE WHICH ALLOCATES *
* THE "ORG" SECTION OF MEMORY. *
* *
* BEFORE THE ACTUAL DATA IS TRANSMITTED, THE BANDPASS FILTER IN THE AIC IS *
* BYPASSED. THIS IS DONE WITH SECONDARY COMMUNICATION. A WORD ENDING IN *
* TWO HIGH BITS (03h) IS SENT TO THE DATA TRANSMIT REGISTER (DXR) TO *
* SIGNAL THAT SECONDARY COMMUNICATION IS TO OCCUR. TO BYPASS THE BANDPASS *
* FILTER, THE NEXT WORD THAT IS SENT MUST ALSO END IN TWO HIGH BITS, AND IT *
* MUST HAVE BIT TWO SET TO ZERO (000E3h). SUBSEQUENT DATA TRANSFERS ARE *
* THEN SENT WITH THE LAST TWO BITS SET TO ZERO (ANDK 0FFFCh), SO THAT THEY *
* ARE NOT MISINTERPRETED AS SIGNALS OF OR AS SECONDARY COMMUNICATION. FOR *
* MORE INFORMATION, SEE LINEAR CIRCUITS VOLUME 2 DATA ACQUISTION AND *
* CONVERSION, PP. 2-247 - 2-276. *
* *
* |<-----------------t ------->|<-----------------t ------->| *
* ______ ______ S ______ S ______ *
* _____/ 03 \__/ E3 \___________/ DATA0\_____________________/ DATA1\___ *
* \______/ \______/ \______/ \______/ *
* *
* _ ______ _______________ _________________________ _______ *
* FSX |__| |__| |__| |__| *
* *
* PRIMARY SECONDARY PRIMARY PRIMARY *
* TRANSMISSION TRANSMISSION TRANSMISSION TRANSMISSION *
* *
* VARIOUS SETTINGS OF JUMPERS E8 AND E9 CAN BE USED TO ALLOW THE INPUT AND *
* OUTPUT SIGNALS TO BE WRITTEN TO AND READ FROM DIFFERENT AUDIO CONNECTOR *
* JACKS. THE SETTINGS BELOW WORK WITH THE INPUT BEING AT SIGNAL NODE *
* CAIN (P3), AND THE OUTPUT AT NODE COUT (P4). *
* *
* WITHOUT PROPER SETTING OF THE OTHER JUMPERS, THE AIB2 MAY NOT WORK WITH *
* THIS PROGRAM. THE PROPER SETTINGS ARE AS FOLLOWS: *
* *
* *
* AIB2 JUMPER SETTINGS *
* JUMPER SETTING JUMPER DESCRIPTION *
* E1 OFF ;MC/MP select A=MP(Vcc) B=MC(GND) >> WARNING! << *
* E2 A ;A:INT0, B:INT1, C:INT2 *
* E3 B-C ;A:BIOZ, B:INT , C:Use C17 and AIC together *
* E4 A ;A:End of conversion, B:Sample rate clock *
* E5 B ;A:Bypass S/H, B:Use sample and hold *
* E6 A ;A:20V range, B:10V range *
* E7 ON ;ON:Connects analog and digital ground *
* E8 B ;A:A/D for input, B:Codec/AIC for input *
* E9 OFF ;A:Input anti-alias filter, B:Bypass anti-alias *
* E10 OFF ;ON:Connect Vcc to C10/15 *
* E11 A ;EPROM type select (see AIB manual) *
* E12 A ;A:Start conv. on sample rate clk, B:start on A/D read*
* E13 A ;EPROM type select (see AIB manual) *
* E14 OFF ;If installed, supplies 8khz frame synch to CODEC *
* E15 A ;EPROM type select (see AIB manual) *
* E16 OFF ;If installed, supplies 2.048 Mhz clock to CODEC *
* E17 OFF ;ON: AIC in byte mode OFF:AIC in word mode *
* E18 OFF ;ON: ties FSR & FSX together for CODEC operation *
* E19 OFF ;ON: ties FSR & FSX to C17 FSR *
* E20 B ;A:select audio power amp B:bypass amplifier *
* E21 A or B ;A:bypass smoothing filter for P2 output B: add filter*
* E22 B ;A:16 bit DAC as P2 output B:CODEC/AIC as output *
* E23 OFF ;A:generate clock B:use emulator clock *
* E24 ON ;ON:1 I/O wait state OFF:No I/O wait state *
* E25 OFF ;ON:use program wait states OFF:No program wait states*
* E26 OFF ;ON:2 program wait states OFF:0 or 1 prog wait states *
* E27 OFF ;ON:2 I/O wait states OFF:1 or 2 I/O wait states *
* E28 ON ;ON:connects V+ to TB1 OFF:disconnects V+ *
* E29 ON ;ON:connects V- to TB1 OFF:disconnects V- *
* E30 B ;A:Use 2792 EPROM B:standard EPROM *
* E31 B ;A:Use 2792 EPROM B:standard EPROM *
* E32 B ;A:Use 2792 EPROM B:standard EPROM *
* E33 B ;A:Use 2792 EPROM B:standard EPROM *
* E34 OFF ;ON:connects DX0 and DX1 of C17 (second serial port) *
* E35 OFF ;ON:connects DR0 and DR1 of C17 (second serial port) *
* *
* NOTE THAT SOME OF THESE SETTINGS, SUCH AS THOSE FOR EPROM CONFIGURATION *
* ARE UNNECESSARY FOR THIS APPLICATION. *
******************************************************************************
.global _AIC_SET
DRR .set 0
DXR .set 1
IMR .set 4
.sect "ORG"
B START ; RESET VECTOR
B START ; RESET VECTOR
B START ; RESET VECTOR
B START ; RESET VECTOR
.space 16*16
B START ; RESET VECTOR
B RINT_ISR ; RECEIVE INTERRUPT
B XINT_ISR ; TRANSMIT INTERRUPT
B START ; RESET VECTOR
*
* SERIAL PORT RECEIVE INTERRUPT SERVICE ROUTINE
* THIS ROUTINE READS THE SERIAL DATA FROM THE AIC AND WRITES IT BACK OUT
* TO THE AIC
*
*
START DINT ; DISABLE INTERRUPTS
*
* CONFIGURE SERIAL PORT
*
SFSM ; SET FRAME SYNC MODE (EXTERNAL FSR-)
RTXM ; RESET TRANSMIT MODE (FSX- INPUT)
FORT 0 ; SET 16-BIT WORDS
SSXM ; SET SIGN EXTENSION MODE
LDPK 0 ; IMR IS LOCATED IN DATA PAGE 0
LACK 020h ; 020h IS THE MASK THAT ALLOWS XINT
SACL IMR ; STORE THE MASK IN THE IMR
LALK 03h ; LOAD TRANSMIT BUFFER W/SIGNAL TO
SACL DXR ; START SECONDARY TRANSMISSION
IDLE ; WAIT FOR INT AFTER COMPLETE TRANSMISSION
LALK 000E3h ; LOAD TRANSMIT BUFFER W/INITIALIZATION
SACL DXR ; BYPASS BANDPASS FILTER
IDLE ; WAIT FOR INT AFTER COMPLETE TRANSMISSION
LACK 010h ; 010h IS THE MASK THAT ALLOWS RINT
SACL IMR ; STORE THE MASK IN THE IMR
MORE IDLE ; WAIT FOR NEXT SIGNAL--PROGRAM SERVICES
B MORE ; RINT_ISR WHEN IT IS RECEIVED
XINT_ISR RET
RINT_ISR LAC DRR ; INPUT IS LOADED IN DRR
ANDK 0FFFCh ; TWO LSBS ARE ZEROED TO PREVENT 2NDARY COMM
SACL DXR ; DATA IS SENT TO DXR
RET ; RETURN TO PROGRAM (MORE)
.end